package cn.edu.gzhmt.order.dao;

import java.util.List;

import cn.edu.gzhmt.order.domain.Order;
import cn.edu.gzhmt.order.domain.OrderItem;

/**
 * 订单模块 dao层
 * @author azhuo
 *
 */
public interface IOrderDao {

	/**
	 * 添加订单
	 * @param order
	 */
	void addOrder(Order order);

	/**
	 * 添加订单明细（条目）
	 * @param orderItemList
	 */
	void addOrderItems(List<OrderItem> orderItemList);

	/**
	 * 根据订单id查询订单
	 * @param oid
	 * @return
	 */
	Order findByOid(String oid);

	/**
	 * 根据用户id查询所有订单
	 * @param uid
	 * @return
	 */
	List<Order> findByUid(String uid);

	/**
	 * 修改订单状态
	 * @param oid
	 * @param ostate
	 */
	void updateOstate(String oid, int ostate);

	/**
	 * 查询所有的订单
	 * @return
	 */
	List<Order> findAll();

	/**
	 * 多条件组合查询订单
	 * @param form
	 * @return
	 */
	List<Order> findOrder(Order order);

	/**
	 * 根据oid删除订单
	 * 假删除
	 * @param oid
	 */
	void removeByOid(String oid);

	/**
	 * 特定时间查询订单
	 * @param date
	 * @return
	 */
	List<Order> statisticsOrder(String date);

}
